package com.shangyueshang.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.shangyueshang.enums.OrderType;
import com.shangyueshang.serializer.SerializerBigDecimal;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.YearMonth;

/**
 * @author: JokeyZheng
 * @email: zhengjingfeng@ruqimobility.com
 * @created: 2022/1/18 16:56
 * @version: v1.0.0
 *
 * <p>平台服务支出统计表</p>
 */
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class PlatformSpend extends BaseModel implements Serializable {
	
	/**
	 * 店铺名称
	 */
	private String shop;
	
	/**
	 * 统计月份，如：2022-01
	 */
	@JsonFormat(pattern = "yyyy-MM")
	private YearMonth tradeMonth;
	
	/**
	 * 广告费用，单位：元
	 */
	@JsonSerialize(using = SerializerBigDecimal.class)
	private BigDecimal advertiseFee;
	
	/**
	 * 店铺租金，单位：元
	 */
	@JsonSerialize(using = SerializerBigDecimal.class)
	private BigDecimal subscriptionFee;
	
	/**
	 * 物流库存报销费用，单位：元
	 */
	@JsonSerialize(using = SerializerBigDecimal.class)
	private BigDecimal adjustmentFee;
	
	/**
	 * 促销(秒杀)费用，单位：元
	 */
	@JsonSerialize(using = SerializerBigDecimal.class)
	private BigDecimal dealFee;
	
	/**
	 * 优惠券手续费用，单位：元
	 */
	@JsonSerialize(using = SerializerBigDecimal.class)
	private BigDecimal couponRedemptionFee;
	
	/**
	 * 库存配置费，单位：元
	 */
	@JsonSerialize(using = SerializerBigDecimal.class)
	private BigDecimal fbaInboundPlacementServiceFee;
	
	/**
	 * 入库缺陷费，单位：元
	 */
	@JsonSerialize(using = SerializerBigDecimal.class)
	private BigDecimal inboundDefectFee;
	
	/**
	 * 早期评论人/Vine邀评费用，单位：元
	 */
	@JsonSerialize(using = SerializerBigDecimal.class)
	private BigDecimal earlyReviewerFee;
	
	/**
	 * FBA库存管理费用，单位：元
	 */
	@JsonSerialize(using = SerializerBigDecimal.class)
	private BigDecimal fbaInventoryFee;
	
	/**
	 * 债务费用，单位：元
	 */
	@JsonSerialize(using = SerializerBigDecimal.class)
	private BigDecimal debtFee;
	
	/**
	 * 物流赔偿费用调整，记为收入，单位：元
	 */
	@JsonSerialize(using = SerializerBigDecimal.class)
	private BigDecimal adjustmentCompensate;
	
	/**
	 * AWD模式费用，记为收入，单位：元
	 * @see OrderType#AWD_Fees
	 */
	@JsonSerialize(using = SerializerBigDecimal.class)
	private BigDecimal awdFee;
	
	/**
	 * Send模式费用，记为收入，单位：元
	 * @see OrderType#Send_Shipping_Charge
	 */
	@JsonSerialize(using = SerializerBigDecimal.class)
	private BigDecimal sendShippingCharge;
	
}
